package com.yida.gwj.expend.outside.mapper;

import com.yida.gwj.api.domain.GwjConfFlow;
import com.yida.gwj.expend.outside.domain.GwjMaintenanceFundsBusiness;
import com.yida.gwj.expend.outside.domain.dto.CostListDTO;
import com.yida.gwj.expend.outside.domain.dto.GetBusinessDetailDTO;
import com.yida.gwj.expend.outside.domain.dto.GwjMaintenanceFundsBusinessFlowDTO;
import com.yida.gwj.expend.outside.domain.dto.GwjMaintenanceFundsBusinessListDTO;
import com.yida.gwj.expend.outside.domain.request.GwjMaintenanceFundsBusinessListRequest;
import com.yida.gwj.expend.outside.domain.request.GwjMaintenanceFundsBusinessRequest;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 公维金维修资金业务Mapper接口
 *
 * @author lgp
 * @date 2023-02-20
 */
@Mapper
public interface GwjMaintenanceFundsBusinessMapper {
    /**
     * 查询公维金维修资金业务
     *
     * @param bizId 公维金维修资金业务主键
     * @return 公维金维修资金业务
     */
    public GwjMaintenanceFundsBusiness selectGwjMaintenanceFundsBusinessByBusinessId(Long bizId);

    /**
     * 查询公维金维修资金业务列表
     *
     * @param maintenanceFundsBusinessListRequest 公维金维修资金业务
     * @return 公维金维修资金业务集合
     */
    public List<GwjMaintenanceFundsBusinessListDTO> getGwjMaintenanceFundsBusinessList(GwjMaintenanceFundsBusinessListRequest maintenanceFundsBusinessListRequest);

    /**
     * 查询公维金维修资金业务列表
     *
     * @param gwjMaintenanceFundsBusiness 公维金维修资金业务
     * @return 公维金维修资金业务集合
     */
    public List<GwjMaintenanceFundsBusiness> selectGwjMaintenanceFundsBusinessList(GwjMaintenanceFundsBusiness gwjMaintenanceFundsBusiness);
    /**
     * 新增公维金维修资金业务
     *
     * @param gwjMaintenanceFundsBusiness 公维金维修资金业务
     * @return 结果
     */
    public int insertGwjMaintenanceFundsBusiness(GwjMaintenanceFundsBusiness gwjMaintenanceFundsBusiness);

    /**
     * 修改公维金维修资金业务
     *
     * @param gwjMaintenanceFundsBusiness 公维金维修资金业务
     * @return 结果
     */
    public int updateGwjMaintenanceFundsBusiness(GwjMaintenanceFundsBusiness gwjMaintenanceFundsBusiness);

    /**
     * 删除公维金维修资金业务
     *
     * @param bizId 公维金维修资金业务主键
     * @return 结果
     */
    public int deleteGwjMaintenanceFundsBusinessByBusinessId(Long bizId);

    /**
     * 查询流程列表
     *
     * @param bizId 请求参数
     * @return 结果
     */
    List<GwjMaintenanceFundsBusinessFlowDTO> selectGwjMaintenanceFundsFlowList(Long bizId);

    /**
     * 查询业务流程
     *
     * @param flowId 业务流程主键
     * @return 业务流程
     */
    public GwjConfFlow selectGwjConfFlowByFlowId(Long flowId);

    /**
     * 得到gwj维修基金业务
     *
     * @param maintenanceFundsBusinessRequest 维修基金业务请求
     * @return {@link GwjMaintenanceFundsBusiness}
     */
    GwjMaintenanceFundsBusiness getGwjMaintenanceFundsBusiness(GwjMaintenanceFundsBusinessRequest maintenanceFundsBusinessRequest);

    /**
     * 获取业务详细信息
     *
     * @param bizId 业务id
     * @return {@link GetBusinessDetailDTO}
     */
    GetBusinessDetailDTO getBusinessDetailMessage(Long bizId);

    /**
     * 分摊费用清册列表
     *
     * @param bizId 业务标识
     * @return {@link CostListDTO}
     */
    public List<CostListDTO> costList(Long bizId);


    GwjMaintenanceFundsBusiness getGwjMaintenanceFundsBusinessOne(GwjMaintenanceFundsBusinessRequest gwjMaintenanceFundsBusinessRequest);

}
